home *** CD-ROM | disk | FTP | other *** search
Makefile | 1994-06-30 | 3.7 KB | 128 lines |
- ##
- ## Build shared libraries for Scheme->C X11 interface.
- ## Built under ISC 386/ix 2.0.2
- ##
-
- ## Edit these
- BINDIR = /usr/local/bin
- LIBDIR = /usr/local/lib
- CPUDIR = /home/28sep90
-
- ## I hope you can leave the rest alone
- LIBS=${LIBDIR}/schemetoc/libsc_s.a /lib/libc_s.a
- libraries = libscx libc
- libscx_a = ${CPUDIR}/xlib/scxl.a
- libc_a = /lib/libc.a
- libc_s_a = /lib/libc_s.a
-
- all: scixl_s
-
- scixl_s: libscx_s
- scc -i -m xlib -o scixl_s libscx_s.a ${LIBS}
-
- ##
- ## The scheme->c xlib modules.
- ##
- libscx = libscx/depth.o libscx/screen.o libscx/visual.o libscx/xarc.o\
- libscx/xchar2b.o libscx/xcharstr.o libscx/xclasshint.o libscx/xcolor.o\
- libscx/xcomstat.o libscx/xevent.o libscx/xfontprop.o libscx/xfontstr.o\
- libscx/xgcvalues.o libscx/xhostaddr.o libscx/xiconsize.o libscx/ximage.o\
- libscx/xkbdcont.o libscx/xkbdstat.o libscx/xlib.o libscx/xlibCONST.o\
- libscx/xlibSTUBS.o libscx/xlibTYPES.o libscx/xmodmap.o libscx/xpoint.o\
- libscx/xrectangle.o libscx/xrmoption.o libscx/xrmvalue.o libscx/xsegment.o\
- libscx/xsizehints.o libscx/xstdcmap.o libscx/xswinattr.o libscx/xtext.o\
- libscx/xtext16.o libscx/xtimecoord.o libscx/xvinfo.o libscx/xwinattr.o\
- libscx/xwinchgs.o libscx/xwmhints.o libscx/xws10.o libscx/xws2.o\
- libscx/xws3.o libscx/xws4.o libscx/xws5.o libscx/xws6.o libscx/xws7.o\
- libscx/xws8.o libscx/xws9.o libscx/xwss.o
- ##
- ## The X11 libraries.
- ##
- libx11 = /usr/lib/libX11.a
- ##
- ## Additional libc support.
- ##
- libc = libc/getpwnam.o libc/getpwuid.o libc/getuid.o libc/perror.o\
- libc/umask.o libc/getpwent.o
-
- ##
- ## The partial scheme->c x library
- ##
- libscx_s: libscx.sl
- -rm libscx_s libscx_s.a
- mkshlib -s libscx.sl -t libscx_s -h libscx_s.a 2> libscx.err
-
- libscx.sl: libscx.o libscx.export
- echo '##' > libscx.sl
- echo '## libscx.sl - scheme->c x library' >> libscx.sl
- echo '#address .text 0xB1000000' >> libscx.sl
- echo '#address .data 0xB1400000' >> libscx.sl
- echo '#target ${LIBDIR}/schemetoc/libscx_s' >> libscx.sl
- echo '#branch' >> libscx.sl
- nm -p libscx.o |\
- sort |\
- nawk '/ T .*__init/{print " " $$3 " " ++nbt}'>> libscx.sl
- echo '#objects' >> libscx.sl
- echo libscx.o >> libscx.sl
- echo '#objects noload' >> libscx.sl
- echo ${LIBDIR}/schemetoc/libsc_s.a >> libscx.sl
- echo /lib/libc_s.a >> libscx.sl
- echo '#hide linker *' >> libscx.sl
- echo '#export linker' >> libscx.sl
- cat libscx.export >> libscx.sl
- cat xlib.export >> libscx.sl
-
- libscx.o: ${libraries}
- ld -x -r -o tmp.o ${libscx} ${libx11} ${libc}
- nm -p tmp.o | \
- nawk '/ C /{ print "int " $$3 "[" int(($$1+3)/4) "]={0};" }'\
- > tmp_defs.c
- ${CC} -c tmp_defs.c
- ld -x -r -o libscx.o tmp_defs.o tmp.o
-
- libscx.export: hexname
- cat ${CPUDIR}/xlib/*.sch | hexname > libscx.export
-
- hexname: hexname.sc
- scc -o hexname hexname.sc
-
- libscx.get: libscx.o
- nm -p ${LIBS} |\
- nawk '/ A [_a-zA-Z]/{ print $$3 }' |\
- sort > absolute
- nm -p libscx.o | nawk '/ U /{ print $$3 }' | sort > undefined
- comm -13 absolute undefined > libscx.get
-
- libscx:
- -mkdir libscx
- cd libscx; ar x ${libscx_a} `echo ${libscx} | sed s/libscx.//gp`
- libc:
- -mkdir libc
- cd libc; ar x ${libc_a} `echo ${libc} | sed s/libc.//gp`
-
- ##
- ## Miscellaney
- ##
- clean:
- -rm libscx.o
- -rm tmp.o tmp_defs.c tmp_defs.o
- -rm libscx.sl libscx.err
- -rm libscx.get undefined absolute
- all-clean:
- -rm -fr ${libraries}
- -rm libscx_s libscx_s.a scixl_s
- -rm hexname hexname.c libscx.export
- install: libscx_s scixl_s
- -rm ${LIBDIR}/schemetoc/libscx_s
- cp libscx_s ${LIBDIR}/schemetoc
- strip ${LIBDIR}/schemetoc/libscx_s
- -rm ${LIBDIR}/schemetoc/libscx_s.a
- -rm ${LIBDIR}/schemetoc/libscx.a
- cp libscx_s.a ${LIBDIR}/schemetoc/libscx_s.a
- ln ${LIBDIR}/schemetoc/libscx_s.a ${LIBDIR}/schemetoc/libscx.a
- -rm ${BINDIR}/scixl_s
- -rm ${BINDIR}/scixl
- cp scixl_s ${BINDIR}
- strip ${BINDIR}/scixl_s
- ln ${BINDIR}/scixl_s ${BINDIR}/scixl
-